/**
 * date:2015-09-12 
 * author:douzaixing 
 * 1、所有内容需封装至jq的ready事件中
 * 2、内部变量名以__开头，内部函数名以_开头 
 * 3、此对话框用于树形结构更新名称时使用
 * 4.密码4*
 */
$(function() {
//	var contextPath = "http://192.168.1.66:9876";
	var contextPath = window.location.protocol+"//"+window.location.host;

	function _init() {
		_myDataGrid();
        _event();
        _intervalMomery();
	}
	
	function _validate() {
		var sign = $("#aa").html();
		if (sign == '登陆') {
			$.messager.alert('错误', "请登录后再操作！", 'error');
			return false;
		} else if (sign == '退出') {
			return true;
		}
	}
	
	function _event() {
		$("#dialog1").show().dialog({
            closed : true,
            shadow : false,
            modal : true,
            buttons: [{
                text:'&nbsp;&nbsp;登 陆&nbsp;&nbsp;',
                className : "btn btn-primary",
                handler : function(){
            		var username = $("#username").val();
                	var password = $("#password").val();
                	if (hex_md5(username) == 'a2c1a1bfcc39a99bd90d179f3bad4beb' && hex_md5(password) == '16ee3b60fdf1a111cda230ee8b184c66') {
                		$("#aa").html("退出");
                		$("#dialog1").dialog('close');
                	} else {
                		$.messager.alert('错误', "用户名或密码不正确！", 'error');
                	}
                }
            },{
                text:'&nbsp;&nbsp;关 闭&nbsp;&nbsp;', 
                className : "btn btn-default",
                handler : function(){
                	$("#dialog1").dialog('close');
                }
            }],
        	width : 400,
        	height: 300
        });
		
    	$("#dialog").show().dialog({
            title : "<i class='fa fa-info fa-fw blue'></i> 添加Redis",
            closed : true,
            shadow : false,
            modal : true,
            buttons: [{
                text:'确认保存',
                iconCls : "fa fa-check-circle",
                className : "btn btn-primary",
                handler : function(){
            		_commit($("#isNew").val()=='new');
                }
            },{
                text:'关闭', 
                iconCls : "fa fa-times-circle",
                className : "btn btn-default",
                handler : function(){
                	$("#dialog").dialog('close');
                }
            }],
        	width : 700
        });
    	
    	$("#add").click(function() {
    		if (!_validate()) return false;
    		$("#appForm")[0].reset();
    		$("#isNew").val("new");
    		$("#dialog").dialog({ title : "<i class='fa fa-info fa-fw blue'></i> 添加REDIS信息" });
    		$("#dialog").dialog("open");
    		return false;
    	});
    	
    	$("#edit").click(function() {
    		if (!_validate()) return false;
    		var rowData = $('#hmGrid').datagrid('getSelected');
    		if (rowData) {
    			$("#key").val(rowData.key);
    			$("#value").val(rowData.value);
    			$("#expireTime").val(rowData.expireTime);

        		$("#dialog").dialog({ title : "<i class='fa fa-info fa-fw blue'></i> 编辑REDIS信息" });
    			$("#dialog").dialog("open");
    		} else {
    			$.messager.alert('错误', '请选择你要编辑的信息', 'error');
    		}
    		return false;
    	});
    	
    	$("#remove").click(function() {
    		if (!_validate()) return false;
    		var rowData = $('#hmGrid').datagrid('getSelected');
    		if (rowData) {
    			$.messager.confirm('确认', '您确实想删除‘' +　rowData.key + '’这个Key吗？', function(r) {
    				if (r) {
    					_delete(rowData.key);
    				}
    			});
    		} else {
    			$.messager.alert('错误', '请选择你要编辑的信息', 'error');
    		}
    		return false;
    	});

    	$("#search").click(function() {
    		_query();
    		return false;
    	});
    	
    	$("#aa").click(function() {
			var sign = $("#aa").html();
			if (sign == '登陆') {
				$("#appForm")[0].reset();
	    		$("#dialog1").dialog({ title : "<i class='fa fa-info fa-fw blue'></i> 登陆对话框" });
	    		$("#dialog1").dialog("open");
			} else if (sign == '退出') {
				$("#aa").html("登陆");
			}
    		return false;
		});
	}
	
	function _myDataGrid() {
		$("#hmGrid").datagrid({
        	title: '<i class="glyphicon glyphicon-list"></i> REDIS信息列表',
        	toolbar : '#tb',
			nowrap : true,
			striped : true,
            pagination : true,
            collapsible : true,
            fitColumns:true,
            singleSelect: true,
            width:$("#hmGrid").width(),
            height:400,
            onResize:function() {
            	$.myPaginate({
                	grid : $("#hmGrid"),
                	url : contextPath + '/poms-redis/getAllByPage',
                });
            	_momery();
            },
            columns: [[
                { field:'key', title: 'key',align:'center',halign:'center',width:2 },
                { field:'value', title: 'value',align:'center',halign:'center',width:2 },
                { field:'expireTime', title: '过期时间(s)',align:'center',width:2,
                	formatter : function(value, row, rowIndex) {
						if (value == -1) {
							return "永久";
						} else {
							return value;
						}
					}
                }
                /*{ field:'cdate', title: '创建时间',align:'center',width:1,
                	formatter : function(value, row, rowIndex) {
						return new Date(value).Format("yyyy-MM-dd hh:mm:ss");
					}
                }*/
            ]]
        });
	}
	
	function _query(){
		if (!_validate()) return false;
		
    	$.myPaginate({
        	data : {
        		key : $.trim($("#rediskey").val()),
        	}
        });
    }
	
	function _delete(key) {
    	var __ajax = null;
		if(__ajax) {
			__ajax.abort();
        }
		__ajax = $.ajax({
			type : "POST",
			dataType : "JSON",
			url : contextPath + '/poms-redis/delByKeys',
			data : {
				keys : key
			},
			success : function(result) {
				if (result.code == '880001') {
					$.messager.alert('成功', '删除信息成功!', 'info');
					/** 此功能是刷新datagrid控件在当前页面 */
					$("span.pagination-load").click();
				} else {
					$.messager.alert('错误', '网络异常，请稍后再试！', 'error');
				}
			},
			error : function(err) {
				$.messager.alert('操作提示', '获取信息失败，请联系管理员!', 'error');
			}
		});
    }
	
	function _intervalMomery() {
	    setInterval(function(){ _momery(); }, 60000);
	}
	
	function _momery() {
    	var __ajax = null;
		if(__ajax) {
			__ajax.abort();
        }
		__ajax = $.ajax({
			type : "GET",
			dataType : "JSON",
			url : contextPath + '/poms-redis/getMemory',
			success : function(result) {
				if (result.code == '880001') {
					$("#momery").html("时间：" + result.result.time + " 内存：" + result.result.memory);
				} else {
					$.messager.alert('错误', '网络异常，请稍后再试！', 'error');
				}
			},
			error : function(err) {
				$.messager.alert('操作提示', '获取信息失败，请联系管理员!', 'error');
			}
		});
    }
	
    function _commit(isNew) {
    	var __url = contextPath + '/poms-redis/save';
    	var __ajax = null;
		if(__ajax) {
			__ajax.abort();
        }
		__ajax = $.ajax({
			type : "POST",
			dataType : "json",
			url : __url,
			data : {
				key : $("#key").val(),
				value : $("#value").val(),
				expireTime : $("#expireTime").val()
			},
			success : function(result) {
				if (result.code == '880001') {
					$.messager.alert('成功', 'reids入库成功!', 'info');
					$("#dialog").dialog('close');
					/** 此功能是刷新datagrid控件在当前页面 */
					$("span.pagination-load").click();
				} else {
					$.messager.alert('错误', '网络异常，请稍后再试！', 'error');
				}
			},
			error : function(err) {
				$.messager.alert('操作提示', '获取信息失败，请联系管理员!', 'error');
			}
		});
    }
	
	_init();
});